---
title: 技术架构及如何快速开发技巧
---

## 整体架构

![image-20231021160903513](https://img.wkq.pub/img/image-20231021160903513.png)

假设做的项目非常庞大，所以项目中的模块按照部门来分，比如订单中心，有很多管理后台，所以建立一个订单的模块组，组里面可能会有 Job、 center 、api 、后台管理、ES 查询。

这么拆分的原因是假设这个系统足够复杂，公司足够大，体验微服务在足够大的体积下是如何设计的。比如说是 京东。

每一个模块都有一个部门开发，为其它部门提供相应的服务。	

## 部署方式

1. Gateway：限流、权限认证
2. 聚合应用层：服务编排，这层有权限控制，比如数据权限，对接 Gateway 层
3. 领域服务层：Service 层不直接对外提供服务，对接聚合应用层



:::tip title=领域层的数据权限如何实现

比如下层提供了根据 condition 条件查询，如果在 聚合应用层发现这个用户是一个普通的职员，那么就要在 condition 上加上条件。

:::

在部门代码组中，以后缀作为服务区别，` auth-web` 认证中心 web 层、`auth-center-api` 认证中心底层服务 api、`auth-center `认证中心

![image-20231021162722327](https://img.wkq.pub/img/image-20231021162722327.png)

## 项目快速开发流程

* 先不管 Web 层，Web 层比较通用,  先考虑 Service 层。
* Service 没有权限，基于领域建模。

* 通过代码生成器快速生成 ，在创建项目的时候快速生成骨架。
* 基于 `livetemplate `实现常用的一些写法。
